package reflect.demo;

import java.io.File;
import java.net.URISyntaxException;

/**
 * 调用与当前类Test2在同一个包中那些类的所有公开的无参方法
 * 提示:文件名与其中定义的类名一致
 */
public class Test2 {
    public static void main(String[] args) throws URISyntaxException, ClassNotFoundException {
        //定位的是Test2.class文件所在的目录
        File dir = new File(
                Test2.class.getResource(".").toURI()
        );

        File[] subs = dir.listFiles(f->f.getName().endsWith(".class"));
        //获取该目录中的所有class文件
        for(File sub : subs){
            //ReflectDemo1.class
            String fileName = sub.getName();
            //ReflectDemo1
            String className = fileName.substring(0,fileName.indexOf("."));
            //缺点:包名写死了
//            Class cls = Class.forName("reflect."+className);
            //dir.getName()--->demo
//            Class cls = Class.forName(dir.getName()+"."+className);
            String packName = Test2.class.getPackage().getName();
            Class cls = Class.forName(packName+"."+className);
            System.out.println(cls.getName());
        }
    }
}
